package edu.erpan.bl.bean;

import java.util.List;

import javax.ejb.Remote;

import edu.erpan.bl.entities.Formulacion;
import edu.erpan.bl.entities.Producto;
import edu.erpan.util.entityManager.DefaultEntity;
import edu.erpan.util.entityManager.IGenericEntityManager;
import edu.erpan.util.entityManager.exceptions.PersistException;
import edu.erpan.util.entityManager.exceptions.QueryException;

@Remote
public interface ProductoBeanRemote<E extends DefaultEntity>  extends IGenericEntityManager<E>{

	/**
	 * Consultar las formulaciones de un producto
	 * 
	 * @param producto
	 * @return lista de formulaciones
	 * @throws QueryException
	 */
	public List<Formulacion> consultarFormulaciones(Producto producto) throws QueryException;
	
	/**
	 * Guardar la formulacion de un producto
	 * 
	 * @param formulacion
	 * @throws PersistException
	 */
	public void guardarFormulacion(Formulacion formulacion) throws PersistException;
	
	/**
	 * Editar la formulacion de un producto
	 * 
	 * @param formulacion
	 * @throws QueryException
	 */
	public void editarFormulacion(Formulacion formulacion) throws QueryException;
	
	/**
	 * Eliminar la formulacion de un producto
	 * 
	 * @param formulacion
	 * @throws QueryException
	 */
	public void eliminarFormulacion(Formulacion formulacion) throws QueryException;
}
